package in.data.entity;
import android.os.Parcel;
import android.os.Parcelable;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import java.util.ArrayList;
import java.util.List;
import in.lib.utils.Debug;
import in.lib.utils.SerialReaderUtil;
import in.lib.utils.SerialWriterUtil;
import lombok.Data;
@Data
public class LinkEntity extends Entity
{
protected String text;
protected String url;
protected int amendedLength;
@Override public LinkEntity createFrom(JsonElement element)
{
if (super.createFrom(element) != null)
{
try
{
JsonObject linkObject = element.getAsJsonObject();
this.text = linkObject.get("text").getAsString();
this.url = linkObject.get("url").getAsString();
if (linkObject.has("amended_len"))
{
this.amendedLength = linkObject.get("amended_len").getAsInt();
}
return this;
}
catch (Exception e)
{
Debug.out(e);
}
}
return null;
}
@Override public LinkEntity createFrom(Parcel parcel)
{
super.createFrom(parcel);
return this;
}
@Override public List<LinkEntity> createListFrom(JsonElement element)
{
try
{
JsonArray linksArray = element.getAsJsonArray();
ArrayList<LinkEntity> links = new ArrayList<LinkEntity>(linksArray.size());
for (JsonElement linkElement : linksArray)
{
LinkEntity link = new LinkEntity().createFrom(linkElement);
if (link != null)
{
links.add(link);
}
}
return links;
}
catch (Exception e)
{
Debug.out(e);
}
return null;
}
@Override public String getVersion()
{
return "eb860f29-d2fd-4466-a70b-856713597c53";
}
@Override public Entity read(SerialReaderUtil util)
{
if (super.read(util) != null)
{
try
{
String version = util.readString();
if (!version.equals(getVersion())) return null;
text = util.readString();
url = util.readString();
amendedLength = util.readInt();
return this;
}
catch (Exception e)
{
Debug.out(e);
}
}
return null;
}
@Override public void write(SerialWriterUtil util)
{
super.write(util);
try
{
util.writeString(getVersion());
util.writeString(text);
util.writeString(url);
util.writeInt(amendedLength);
}
catch (Exception e)
{
Debug.out(e);
}
}
public static final Parcelable.Creator<LinkEntity> CREATOR = new Creator<LinkEntity>()
{
@Override public LinkEntity[] newArray(int size)
{
return new LinkEntity[size];
}
@Override public LinkEntity createFromParcel(Parcel source)
{
return new LinkEntity().createFrom(source);
}
};
}